/* randomlib.h -- random number generation module.
 */


#ifndef randomlib__h
#define randomlib__h 1  /* once only */

/* randomlibGet -- get random bits.
 *      All bits of the returned word are "random".
 */
unsigned randomlibGet(void);

/* randomlibGetArray -- get multiple bytes of noise
 */
void randomlibGetArray( void *ByteArray, unsigned NBytes );

/* randomlibAdd -- add a word to the remembered noise state.
 *      The word should be at least somewhat noisy.
 *      Take care that there is not too much of a pattern of repetition to 
 *      how correlated words are added.
 *
 *      This should be called frequently from a variety of places ...
 */
void randomlibAdd( unsigned word );

/* randomlibAddStart -- call during startup stages to give an
 *      extra head start to initializing the noise array.
 */
void randomlibAddEarly( unsigned noise );

/* randomlibAddArray -- add multiple bytes of noise source
 *  */
void randomlibAddArray( const void *ByteArray, unsigned NBytes );

#endif  // randomlib__h
